package thread.ch03;

/**
 * 不要让this引用在构造期间逸出。如果this引用在构造过程中逸出，这样的对象被认为是“没有正确构建的”。
 * 一个导致this引用在构造期间逸出的常见错误是：
 * 在构造函数中启动一个线程。当对象在构造函数中创建了一个线程时，this引用几乎总是被新线程共享。于是新的线程在所属对象完成构造前就能看见它。
 * 如果想在构造函数中注册监听器或者启动线程，可以使用一个私有的构造函数和一个公共的工厂方法，避免不正确的构建
 * 
 * @author Edgar Zhang
 * 
 */
public class SafeListener {

	// private final EventListener listener;
	//
	// private SafeListener() {
	// listener = new EventListener() {
	// public void onEvent(Event e) {
	// doSomething(e);
	// }
	// };
	// }
	//
	// public static SafeListener newInstance(EventSource eventSource) {
	// SafeListener safe = new SafeListener();
	// eventSource.registerListener(safe.listener);
	// return safe;
	// }
}
